package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Comparator;

public class SortListDemo2 {
    public static void main(String[] args) {
        List<Point> list = new ArrayList<>();
        list.add(new Point(50,8));
        list.add(new Point(7,9));
        list.add(new Point(7,6));
        list.add(new Point(7,8));
        System.out.println(list);
        /*
        sort方法在排序集合时要求集合元素必须可以比较大小
        是否可以比较大小根据元素是否实现接口Comparable
        侵入性问题：当我们使用某个API时，如果它要求我们为其修改额外的代码，
        那么我们就说它侵入了原有代码，而侵入性不利于程序后期维护，应当尽量避免
         */
        Collections.sort(list, new Comparator<Point>() {
            public int compare(Point o1, Point o2) {
                return o1.getX()*o1.getX()+ o1.getY()* o1.getY()-o2.getX()*o2.getX()+o2.getY()*o2.getY();
            }
        });
        System.out.println(list);


    }
}
